home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / bbs / Hydra11U1.lha / HBBS / TODO.TXT < prev   
Text File  |  1996-11-07  |  19KB  |  531 lines

  1. ToDo
  2. ====
  3.  
  4. Docs
  5. ====
  6.  
  7.   Express that BBSGlobal->TotalUsers CANNOT be used to find the amount
  8.   of users in the userdata file (as deleted users can be overwritten)
  9.  
  10.   Do not compact the userdata file when ythe bbs is running!
  11.  
  12. MailOptimize
  13. ============
  14.  
  15.   create a program to check the MailStats.CFG files in each mail directory and get
  16.   it to update the FirstMessage (and LastMessage ?) items so that mail scanning
  17.   is quicker (i.e.  don't have to open Message_0.CFG -> Message_<actual first msg>.CFG
  18.  
  19.   also have this program remove the expired messages..
  20.  
  21.   not forgetting to make it run once a day.  At every logoff would be a bad idea
  22.   as it may take a while! :-)
  23.  
  24. AccountEdit
  25. ===========
  26.  
  27.   check that user is not on-line already when in non SYSOPONLY mode (i.e. editing from
  28.   another node while the user is online is not allowed, to do this I need to send a
  29.   message to the node that the user is on to get it to halt while the pother use edits
  30.   the account, the data then needs to be copied to the user on-line data on the other
  31.   node.
  32.  
  33.   Make it display *'s next to account settings that are incorrect (e.g.
  34.   invalid access level, no conf access settings file specified etc..)
  35.  
  36.   make it so that you cannot edit your own account when you are online (it'll go wrong
  37.   at the moment) or better still, make it so that you can :-)
  38.  
  39.   account presets (use the AccountEdit door to load/save/define them)
  40.  
  41. ReadMail
  42. ========
  43.  
  44.   message reading (screen displaying), remove Continue [y/n] from screen..
  45.  
  46.   allow option for sysop to read other users private mailboxes...
  47.  
  48. HBBSCommon
  49. ==========
  50.  
  51.   add a routine to copy a list and it's contents
  52.  
  53.   record all calls to DoErrorMessage...
  54.  
  55.   finish HBBS_LoadUser()
  56.  
  57.   fix HBBS_ValidUserHandle() ref: TotalUsers
  58.  
  59. FileLister
  60. ==========
  61.  
  62.   add option to lister(s) (FR, N) showing the last x files uploaded (e.g.  FR L 20 to show
  63.   the last 20 files uploaded in the current conf)
  64.  
  65. MailWrite
  66. =========
  67.  
  68.   filenote() the mail message .txt's!
  69.  
  70.   backup mail messages (when written) to an archive, name of msg would be
  71.   <Type>-<Conf>-<FromID>-<ToID/NAME>
  72.   so, when you write a mail it'll just add the file to an .LHA archive thus giving
  73.   you a space saving way of backing up your message base..
  74.  
  75.   allow the username Sysop, and replace it with BBSGlobal->SysopAccount
  76.  
  77.   if only one paramater and the parameter is more than 1 char then it must be some
  78.   user handles, therefore default to conference mail and send the mail
  79.  
  80.     e.g. E fred,barney
  81.  
  82. HBBSNode
  83. ========
  84.   add a GL_#? flag that tells the system to print out the contents of a string
  85.   every x microseconds while it is waiting for input.  This is a wicked idea.
  86.   Using this you can have cool ansi animations going on while you're waiting
  87.   at a prompt for example...
  88.  
  89.     implement: GL_ANSIANIM
  90.     node:      struct List *N_ND->AnsiAnimList;
  91.  
  92. Shell
  93. =====
  94.  
  95.   fix lockup bug and make cooler
  96.  
  97. Download
  98. ========
  99.  
  100.   still needs a sysop download
  101.  
  102. Node_Misc.c
  103. ===========
  104.  
  105.   fix problem (not bug) with @^@ codes and special formatting..  I'm using sprintf()
  106.   to do the formatting at the moment, so you just use std 'C' % formatting options
  107.   like %-15s (-> @^-15s^ComputerType@ in a screen ), but if the item you are printing
  108.   is more that than the amount of chars you specify it will not chop the rest off...
  109.   the downside to this is that if you designs screens (like raider has done for me)
  110.   they kind of mess up when you use long strings etc...
  111.  
  112.   **** nope, just use something like... @^-15.15s^ComputerType@ and it's fine
  113.  
  114.   Add Ctrl-C checking to DisplayScreen() and DisplaySpecialScreen()
  115.  
  116.   DisplayScreen() needs more N_ND->OnlineStatus checking after pause prompts
  117.  
  118. Other Stuff
  119. ===========
  120.  
  121.   create an Error Watcher program, which sets up a port called "HBBS_Error_X" (where x is
  122.   a number, so you can have more than one port..), then change hbbs_LogError()
  123.   so it checks for those ports and sends them the details of the error in a message.
  124.   Then a sysop can have a window pop up on his screen with the error... (great for
  125.   finding problems with a setup..)  you could also have a program like SendOLM in
  126.   HBBS:Utils that checks to see if a co-sysop or sysop is on-line and sends them the message
  127.   too!  Cool....
  128.  
  129.   Multinode chat door
  130.  
  131. Frontend
  132. ========
  133.  
  134.   make it check to see if the user is logged onto another node, if they are, deny access
  135.  
  136.   move some strings from N_ND->NodeSettings to the appropriate door's config file
  137.   (e.g. usernameprompt should really be in FrontEnd.CFG...)
  138.  
  139.   Fix bug with OLM's and FrontEnd (when you're typing in a node password)
  140.  
  141.   Implement Calls Allowed checking
  142.  
  143.  
  144. Structures.h
  145. ============
  146.  
  147.   Implement Extra#? settings that are defined in structures.h
  148.  
  149. Control
  150. =======
  151.  
  152.   New user Timelimit needs to be added somewhere (probably same place as NewUserConf...)
  153.   or could be withing the NewUser door...
  154.  
  155. AddCreds
  156. ========
  157.  
  158.   check that AddCreds door can accept a conference number as a parameter to allow
  159.   for easy implementation of conference accounting..
  160.  
  161. TagFile
  162. =======
  163.  
  164.   make the TagFile door call a door called "OKToTag" with the conference num and filename as
  165.   parameters (for easy implementation of conference accounting and file restriction doors)
  166.   (like passworded files..)
  167.  
  168.   Add File Password support (i.e. change tag door so search for a config file
  169.   that has a list of filenames, and passwords. (maybe a confnum too, depends wether you'll ever
  170.   have files of the same name in a difference conference..)
  171.  
  172.   Hmm, example config file (HBBS:Doors/System/TagFile/PasswordedFiles.CFG)
  173.  
  174.     Name_1=HydraBBSA10.LHA
  175.     Type_1=CONF ; could be CONF, or SYSTEM (i.e. filename can be full path if using SYSTEM)
  176.     Conf_1=5 ; HBBS Conf if CONF is used
  177.     Level_1=250 ; if you are below this access level you will be asked for the Password
  178.     Password_1=BETA ; where BETA is the actual password..
  179.  
  180.   oh, and we also need another config file with a list of files that cannot
  181.   be downloaded except by the sysop.. ie. HBBS:Doors/System/TagFile/RestrictedFiles.CFG
  182.  
  183.     File_1=HBBS:System/Data/User.Data
  184.     File_2=HBBS:Doors/System/TagFile/TagFile
  185.  
  186. NodeInput.C
  187. ===========
  188.  
  189.   Fix ctrl-x/up/down with GL_NODISTURB (door writers should not use GL_HISTORY until
  190.   this is fixed if possible..)
  191.  
  192.   have a cool DOOR_WriteTextSpecial() function that given the corrent flags, timeouts
  193.   and string will display text on the screen as if it was coming from a 300baud modem
  194.   as per the "wargame" film.
  195.  
  196. AutoComment
  197. ===========
  198.  
  199.   Write a GUI for AutoComment and finish it!
  200.  
  201. Node
  202. ====
  203.  
  204.   make it so that the node watch windows can be opened on a different public screen
  205.   to that of the Control Program
  206.  
  207.   add routine to show all availiable public screens and use instead of a string gadget
  208.   when selecting screen to appear on.
  209.   (unless reqtools has this option...)
  210.  
  211. network mail! yeah!
  212.  
  213. option for sysop to set N_ND->DoorLogOverride=TRUE (button on GUI)
  214.  
  215. option on CommandPrompt door to log all commands user types (like DoorLog in /X)
  216.   (DoorLog in HBBS is a bit different...)
  217.  
  218. startup log
  219.  
  220. spell checker on messages!
  221.  
  222. add a file_id.1 into files with a one-line description..
  223.  
  224. util to convert aminet cd dirs to hbbs filelistings..
  225.  
  226. and a 1 id to the filelist format same as F but with only a one-line description..
  227.  
  228. create docs with a list of /X config settings in and show the user
  229. what the same things are in HBBS
  230.  
  231. change watch window font depending on conference..
  232.  
  233. you can currently write a USER mail to ALL !
  234.  
  235. have it so that you can enable different logs for different users.  for instance,
  236. say you have a user who's a bit dogdey you might want to enbale the doorlog for
  237. him, but not for everyone else...  Coooooooooooool!
  238.  
  239.  
  240. doubleclicking on a user name in a listview window should bring up an
  241. account editor with the users details in! :-)
  242.  
  243. make the G door accept NOPROMPT as an option.
  244.  
  245.  
  246. create a ST door so that sysop's can flag files for other users..
  247. --> you can do this anyway by editing the files in HBBS:System/Data/Taggedfiles/#?
  248.  
  249. add QUIET parameter to Tag_File
  250.  
  251. add a GL_KEEPPROMTIFBLANK which will return the prompt string (if specified) in
  252. N_ND->CurrentLine if the user delete's the prompt string and leaves a blank line!
  253.  
  254. make node, settings, and configure windows pop to front if already open.
  255.  
  256. add an [U]pload to the editor program..!
  257.  
  258. also, in the editor, check to see if the login type is a local login, if so, ask the
  259. sysop wether to use an actual GUI Text editor (like TTX) to edit the message...
  260.  
  261. set a button on the control to open up a node's "Settings" window!
  262.  
  263. change the door commands and how doors are run..
  264.  
  265.   Ideas
  266.  
  267.   call <Name>_Door_<n>  <name>_Data_<n> so it avoid confusion
  268.   when using something like SCREEN or ECHO for a door type.
  269.  
  270.   also you need to be able to specify the paramters that were typed at the bbs
  271.   prompt as options for doors, be you must also be able to add your own options
  272.   to them as well,  example:
  273.  
  274.   FR_Type_1=NORMAL
  275.   FR_Data_1=HBBS:Doors/User/FileReverse/FR.HBBS {nodenum} {bbsoptions} CONF
  276.  
  277.   FRS_Type_1=NORMAL
  278.   FRS_Data_1=HBBS:Doors/User/FileReverse/FR.HBBS {nodenum} {bbsoptions} HOLD
  279.  
  280.   where {nodenum} is replaced by the node number, {bbsoptions} are replaced by the
  281.   options that were typed at the bbs prompt..  so, if a user on node 3 types
  282.  
  283.   FR N -2
  284.  
  285.   the actual command executed would be
  286.  
  287.   HBBS:Doors/User/FileReverse/FR.HBBS 3 N -2 CONF
  288.  
  289.   much better than just appending the params to a program.  also like this
  290.   you can place the parameters in any order you like.. thus being able to cope with
  291.   far more programs and it also makes the program more flexible.  it also
  292.   reduces the amount of seperate doors you might need..
  293.  
  294.   also I need a DOOR_Continue(TRUE/FALSE) and associated
  295.   N_ND->DoorContinue.
  296.  
  297.   if a door sets door continue to false the next door will not be run
  298.   if the configuration for a door has more than one door associated
  299.   with the command.
  300.  
  301.   e.g.
  302.  
  303.   the download door a) calls the HBBS:Doors/<blah>/Download.HBBS, then
  304.   it would b) call the door HBBS:Doors/<blah>/QuickStats.HBBS.
  305.  
  306.   obviosly, the download door might be cancelled before we actually
  307.   transfer some files, so it would set DoorContinue to FALSE then
  308.   the quickstats door would not be run..
  309.  
  310. change GetLine()
  311.  
  312.   Ideas..
  313.  
  314.   instead of going TRUE,TRUE,0,blahh..  use FLAGS
  315.  
  316.   so we need these flags
  317.  
  318.   EDIT      // left/right cursor keys and backspace + delete
  319.   HISTORY   // allow cursor up/down to gothrough the history
  320.   DISPLAY   // display text on screen at all ?
  321.   LINEWRAP  // if reached maxlen and last key pressed was a non space
  322.             // char then copy all data back to the previous space char
  323.             // to N_ND->CurrentLineWRAP and return IN_GOTLINE
  324.   NORETURN  // does not print a "\r\n" when the user presses return
  325.   IMMEDIATE // returns when the user has typed in MaxLen chars
  326.             // don'tuse with linewrap :-)
  327.             // use immediate and noreturn for hoykey support.  -> COOL
  328.  
  329.   also we need to be able to prompt the user with a default string for an option.
  330.  
  331.   timeout is in micros
  332.  
  333.   An example prototype might be
  334.  
  335.   GetLine(Flags,PasswordChar,MaxLen,TimeOut,PromptStr);
  336.  
  337.  
  338.   the above example takes less params then the current version *AND* offers more
  339.   scope
  340.   -------------
  341.  
  342. existence of tagged files must be verifyied when the saved tags are loaded in
  343. again (when a user logs on, see node_input.c)
  344.  
  345. change str_CtrlScrnName from a set length variable to a string pointer, and allow
  346. changing between a public screen name and "CtrlScrn", that way you can hbbs on a WB
  347. screen.
  348.  
  349. Use this function more!!!
  350. -> HBBS_LogError(BBSGlobal->ErrorLogFile,ERR_GENERAL,outstr,TYPE_WARNING);
  351.  
  352. add options for /X help for sysop's and users to help them change between systems
  353. (i.e. when a sysop presses F10 wanting to log a user off tell him to press
  354. SHIFT+F10 instead of just F10..etc... do the same sort of things for door commands..)
  355.  
  356. when a node starts it must check the playpen and work for file and move/delete them
  357. accordingly. (check id of last user that called from log files..)
  358.  
  359. Add NamesNotAllowed files to Node_XX directories, don't make it a config file,
  360. just have a list of names so it's easier to add/remove names rather than having to
  361. change name_xx = name_xx when you remove a name from the middle of the list.
  362.  
  363. Add tones and tonnes of error messages that are logged in the logfile..
  364.  
  365. Add DOOR_HuntScreen() to door library to search for screens in the node
  366. directory and then the screens directory, with option for adding a specified access
  367. level.  e.g. DOOR_HuntScreen("Files",20); where it would search for Files_20.TXT...
  368.  
  369. make HBBS_SaveUser() or whatever to search for users with a status of
  370. user_overwritable
  371.  
  372. change ALL strncpy()'s to strNcpy()!!!  IMPORTANT!! (strncpy() does not *always* null terminate strings..)
  373.  
  374. add option "SkipOK" to Device config so that if you have a weird modem you
  375. can tell the bbs not to wait for the OK string after commands..
  376.  
  377. when control is opened on a 16 colour screen set the first 8 colours
  378. to the standard ANSI colours and set the next 4 colours to the usual WB colours.
  379. then set the dripens for drawing windows/gadgets etc to point to the usual colours
  380. --> nearly done, sets palette and dri-pens, but just can't get the background
  381.     of the screen and windows to be anthing other then colour 0... Hrmmm..
  382.  
  383.  
  384. get the Node program to run a door just after frontend called "Speed_XX.HBBS", where
  385. xx is replaced by the baud rate of the caller..
  386.  
  387. add timeout on doors,  best place would be where NODE looks at messages coming
  388. from the door program,  you could set a timer when the door has started (when you get
  389. a doorstart IO message) and see if it times out, if it does then cancel running that
  390. door.  Also you'd have to reset the timer everytime the node received a message
  391. from the door,  BUT, file transfers will be sending all their data via messages
  392. so you could only reset the timer on bog standard messages,  perhaps set up a new
  393. type of message for use only by transfer protocols that would be skipped...
  394.  
  395. have a button in the node's settings window to manually stop a door.  This is cool
  396. if a door has crashed and you want the system to continue..  also the timeout on the
  397. door function would need to call the same cleanup function.  was thinking of being
  398. able to pass the a pointer to the door you want to cancel as a parameter, to
  399. HBBS_CleanupDoor()
  400.  
  401. have option for sysop, so that they can choose to strip all ansi colour changes
  402. from the watch window, thus speeding up the user's display. (this would also be better
  403. if the sysop was using watch windows on a 2,4 or 8 colour screen.)
  404.  
  405. add time, bytes etc to the HBBS_ModifyString() function in HBBSNode.C.
  406. --> done, still need to add bytes to ModifyString() tho.
  407.  
  408. add in developer docs and specify the point that you can't have config item options
  409.   as follows
  410.  
  411.   Item_XX
  412.   Item_XX_Blah
  413.  
  414.   as HBBS_RemoveCfgItem("Item_#?") would remove ALL the items above..
  415.  
  416.   oh, and don't use ?'s or #?'s in item names :-)
  417.  
  418. state importance of taking a copy of N_ND->CurrentLine before passing it to another
  419. door as a parameter, in developer docs...
  420.  
  421. have userhandle, and status (u/l'd d/l'd pw failed, scanned, paged etc) all on the
  422. window title of a watch screen or window..
  423. --> handle, group and speed are displayed..
  424.  
  425.  
  426. ToDone :-)
  427. ======
  428.  
  429. fix bug with a closed console screen sometimes crashing the system, to check do this:
  430. load up node3, close the screen, load up term. use nullmodem.device, unit 7.  and
  431. try and log in.  it crashed when you press return after typing in a correct handle..
  432. --> done, it was Node_Console.c's SetWatchTitles() on a closed window...
  433.  
  434. add @^PAUSE_TIMEOUT^@ with options timeout length
  435. --> done, it's @^TPAUSE^<seconds>@
  436.  
  437. make it so that if you pass 0 as a buffersize to HBBS_CopyFile() then it'll use
  438. a default value. (sysop specifyable...!! cool idea!)
  439. --> done, see BBSGlobal->CopyBufferSize
  440.  
  441. abort prompt when cancelling message
  442. --> done
  443.  
  444. implement bbsglobal->CallsEver
  445. --> done
  446.  
  447. fix who door, long names/handles cause it to fuck itself..
  448. --> done
  449.  
  450. if settings window is open, bring it to front
  451. --> done
  452.  
  453. write the following to the CallersLog file when a user logs off
  454. uploads, downloads, ulbytes, dlbytes, nukes, pages, msgs read, msgs written
  455. then it'll be dead easy to provide statistics for bulletins etc!
  456. --> done
  457.  
  458. fix small bug in @^SYSDOOR@ANNOUNCE OFF@, the command the gets run has two spaces
  459. between the node number and the OFF parameter instead of one.
  460. e.g. 19-JUN-1996 18:56:16 Handle: hydra, Conf: Amiga Warez, Door: HBBS:Doors/System/Announce/Announce.HBBS 3  OFF
  461. --> done
  462.  
  463. option to have a list of users that dooroverride is set to on for
  464. (i.e.  a list of suspect users that have been trying to play around with your bbs!)
  465. -->done, created SetSuspect system door
  466.  
  467. option for getline, GL_NODISTURB.  needs to make it so that if you specify a maxlen
  468. then it means it musn't move things on the same line after the input position
  469. (e.g.  see why on the sent door)
  470.  need to be able to have  "Enter Name: [            ]", at the moment the ] gets moved
  471. --> done
  472.  
  473. RAW input for doors (i.e. show a text fiel and let users press keys to pause it etc..)
  474. --> done, see DOOR_CheckRaw(Flags);
  475.  
  476. make node wait for SIGBREACK_CTRLC or sommat in the getline loop..
  477. --> nope, use CheckRaw() for checking for Ctrl-C pressed
  478.  
  479. create caller logs (ie, when a user logs on and at what speed and all that shite..
  480. --> done
  481.  
  482. create a history file for the wall with the users handle on it..
  483. --> done
  484.  
  485. ban ;'s from user handles and names (and anything else that might go into a config
  486. file :-)
  487. --> see HBBS+_HandleNameOK()
  488.  
  489. when downloading, display what was selected (start, goodbye, abort...)
  490. --> done
  491.  
  492. make the sentby used
  493. --> done, see AddDIZToList
  494.  
  495. error checking on ConfAcs loading... (problems if file does not exist)
  496. --> done, acount edit and checkuser have been updated
  497.  
  498. sentby ask door (see userdata structure)
  499. --> done, see AskSentBy
  500.  
  501. sentby attach to uploads
  502. --> Done, see AddDIZToList
  503.  
  504. implement LanguageName_XX and LanguageExtn_XX for screens...
  505. --> done
  506.  
  507. implement ConfAcs files, add checkuser to get it to check for a users confacs file
  508. beging present, if not write a msg to a log file
  509. (refs: Access/Levels/Level_List, System/Data/ConfAcs/#?)
  510. --> done
  511.  
  512. JoinConference
  513. ==============
  514.  
  515.   changing to a conference tha a user can see but does not have access to results
  516.   in the error "Invalid Conference Number", it should be "Access Denied".
  517.   --> done
  518.  
  519.   Also if you use start join conference with no params and use a conference number
  520.   that you can see but don't have access to, you don't get any message.
  521.   --> done
  522.  
  523.   update join conference so that it takes not of the new N_ND->User.ConfAcs settings!
  524.   --> done
  525.  
  526. ReadMail
  527. ========
  528.  
  529.   make R (mail) start from the LAST message instead of the first (for /x people...:-)
  530.   --> Done
  531.